Java language is an interpreted language. Java source code is compiled to generate a bytecode file and the generated bytecode file is interpreted and executed in a Java virtual machine. Because the bytecode file has strong self-description, a lot of symbols and compiling information are kept, which results in that Java source code can be easily decompiled to source code which has strong readability, therefore, gains obtained by working of developers might be plagiarized or product of developers might be tampered. With the popularization of Java language, Java is applied widely in many field, the requirement for protecting Java source code becomes more and more urgent.
In the prior art, Java source code is generally protected by obfuscating code executing flow or hiding key information, which makes the decompiled code difficult to understand and makes the cost of cracking the source code to increase. However, with the development of the anti-obfuscation technology, purpose of protection can not be achieved by obfuscation effectively.
For the problem that Java source code can be easily decompiled in related art, no effective solution is provided at present.